The present invention relates to the configuration of computing systems, and more particularly to methods and apparatus for maintaining configuration information in local computing systems and distributed computer environments.
In order for a computing system to perform required functions, the computing system typically incorporates various installed hardware devices and software applications. To properly communicate with and supervise the various installed hardware devices, for example, the computing system must store configuration information that matches the physical hardware elements that are actually installed. In the event of a failure, or when routine servicing is required, a given piece of hardware on a computing system might be replaced by a compatible piece of hardware, having a different manufacturer, model number or version. Thus, this change needs to be reflected in the configuration information.
Most operating systems, such as the Windows(trademark) operating system, commercially available from Microsoft Corporation of Redmond, Wash., provide a configuration manager for recording and updating such configuration information. Typically, the configuration manager maintains a list of the installed hardware devices, as well as the corresponding resources used by each device. The configuration manager typically monitors for hardware changes, and ensures that the proper device drivers are loaded. In addition, the configuration manager maintains the configuration information for installed software applications. Each time a new software application is installed or uninstalled on a given computing system, the configuration manager updates the file registry and other files containing software-related configuration information.
In addition, in order for the computing system to communicate over a network with one or more remote devices, the network connections must be configured. For example, most distributed computing environments utilize a network database to translate the port names and domain addresses used for convenience by a given machine or service to a particular number that is mapped to the actual hardware. The network database containing the configuration information for the various network nodes may be maintained locally by each network node or centrally by a network manager.
Configuration files are typically maintained as static files. Thus, each time a change is made to the configuration information, the updated information needs to be made available to the necessary devices and applications. For example, in many distributed computing environments, the network nodes are notified of configuration changes or automatically periodically read the network database in order to obtain the current network configuration information. Thus, in between each periodic interval, the network configuration information used by a given node may not precisely match the actual network configuration. In addition, after a new software application is installed, many operating systems, including the Windows(trademark) operating system, require that the user reboot the computing system in order to make the updated configuration information, including the file registry, available to other applications.
A need therefore exists for a method and apparatus for dynamically maintaining configuration information. A further need exists for a method and apparatus that maintain configuration information in a convenient, file-oriented manner. Yet another need exists for a method and apparatus that allow configuration information to be managed by the configured service and updated using conventional file management tools.
Generally, according to one aspect of the invention, the configuration information for a given service is maintained and distributed by the configured service itself. Thus, the configured service controls the creation of its own configuration information, as well as updates and access thereto. Furthermore, since the configuration information is mediated by the corresponding configured service, any valid and authorized updates to the configuration information may be implemented by the configured service immediately. In one embodiment, the configured service maintains the configuration information as a synthetic file in a hierarchical file system, for access by authorized end-users (clients). As used herein, a configuration file is any local or remote file maintained by a configured service that records configuration information for hardware or software components.
When the configuration information is maintained by the configured service as a file in a hierarchical file system, the configuration information recorded in the configuration file can be accessed and updated by end-users (clients) in the same manner as a dynamic file. Thus, the configuration files can be edited by end-users using standard file system editing tools in the same manner as a conventional file and changes take effect immediately. In addition, access control features of the file system can be utilized to restrict access to the configuration files.
In this manner, the present invention allows configuration information to be accessed and updated using familiar file access operations (such as save, open, read, write). For example, changes to the configuration information can be implemented by writing to the file, or using tools to edit the file. In addition, configuration information can be obtained by reading from the file. All end-users can access the same configuration information using the same dynamic file. In one illustrative embodiment, the collection of resources, services and configuration information being used by a process is combined into a single rooted hierarchy of file names, referred to as a namespace. The resources, services and configuration information accessible to an individual namespace can be located on a single local node, or on multiple nodes distributed throughout the network.
A more complete understanding of the present invention, as well as further features and advantages of the present invention, will be obtained by reference to the following detailed description and drawings.